home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / db / RCS / Db_Close.c,v < prev    next >
Text File  |  1989-01-13  |  2KB  |  113 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.2
  10. date     89.01.13.11.43.51;  author douglis;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.08.14.15.07.30;  author douglis;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @Procedure to close a 'database' file.
  22. /
  23. @
  24.  
  25.  
  26. 1.2
  27. log
  28. @changed for buffering and for new arg passing to lock routine.
  29. [generic checkin msg].
  30. @
  31. text
  32. @/* 
  33.  * Db_Close.c --
  34.  *
  35.  *    Source code for the Db_Close procedure.
  36.  *
  37.  * Copyright 1988 Regents of the University of California
  38.  * Permission to use, copy, modify, and distribute this
  39.  * software and its documentation for any purpose and without
  40.  * fee is hereby granted, provided that the above copyright
  41.  * notice appear in all copies.  The University of California
  42.  * makes no representations about the suitability of this
  43.  * software for any purpose.  It is provided "as is" without
  44.  * express or implied warranty.
  45.  */
  46.  
  47. #ifndef lint
  48. static char rcsid[] = "$Header: /sprite/src/lib/c/db/RCS/Db_Close.c,v 1.1 88/08/14 15:07:30 douglis Exp Locker: douglis $ SPRITE (Berkeley)";
  49. #endif not lint
  50.  
  51.  
  52. #include <db.h>
  53. #include "dbInt.h"
  54.  
  55.  
  56. /*
  57.  *----------------------------------------------------------------------
  58.  *
  59.  * Db_Close --
  60.  *
  61.  *    Unlock (if needed) and close the file referred to by the handle.
  62.  *
  63.  * Results:
  64.  *    -1 indicates an error, in which case errno indicates more details.
  65.  *    0 indicates success.
  66.  *
  67.  * Side effects:
  68.  *    Resets streamID to -1 and buffer to NULL to guard against use
  69.  *     after Db_Close has been called.
  70.  *
  71.  *----------------------------------------------------------------------
  72.  */
  73.  
  74. int
  75. Db_Close(handlePtr)
  76.     Db_Handle *handlePtr;
  77. {
  78.     register int status;
  79.  
  80.     if (handlePtr->buffer != (char *) NULL) {
  81.     (void) free(handlePtr->buffer);
  82.     handlePtr->buffer = (char *) NULL;
  83.     }
  84. #ifndef CLEAN
  85.     (void) free(handlePtr->fileName);
  86.     handlePtr->fileName = (char *) NULL;
  87. #endif /* CLEAN */
  88.  
  89.     if (handlePtr->lockWhen == DB_LOCK_OPEN) {
  90.     (void) flock(handlePtr->streamID, handlePtr->lockType | LOCK_UN);
  91.     }
  92.     status = close(handlePtr->streamID);
  93.     handlePtr->streamID = -1;
  94.     return(status);
  95. }
  96. @
  97.  
  98.  
  99. 1.1
  100. log
  101. @Initial revision
  102. @
  103. text
  104. @d17 1
  105. a17 1
  106. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  107. d37 2
  108. a38 1
  109.  *    None.
  110. d49 9
  111. d62 1
  112. @
  113.